/**
 * 场景类
 */

/**
 * 场景类伪函数
 */
export abstract class SceneAbstractClass {

    public abstract Persons: PersonAbstractClass[];

    public abstract Objects: ObjectAbstractClass[];

    /**
     * 输入格位类型
     */
    public abstract setPerson (person: PersonAbstractClass ): void;

    /**
     * 输入物体
    */
    public abstract setObject (object: ObjectAbstractClass ): void;

    /**
     * 启动场景
     */
    public abstract init (): void;
    
    public abstract timer (): void;
}

/**
 * 各位伪类
 */
export abstract class PersonAbstractClass {

}

/**
 * 物体类型
 */
export abstract class ObjectAbstractClass {

    /** 速度 */
    public SLP: number = 10;

    /** 当前速度条 */
    public SLPL: number = 0;

    /** 生命 */
    public HP: number = 1000;

    /** 生命 */
    public MP: number = 100;

    /** 防御 */
    public FTK: number = 10;

    /** 元素抗性 火 */
    public FTKH: number = 10;

    /** 元素抗性 水 */
    public FTKS: number = 10;

    /** 元素抗性 雷 */
    public FTKL: number = 10;

    /** 攻击力 */
    public ATK: number = 100;

    /** 魔力 */
    public MTK: number = 200;

    /** 精神力 */
    public JSTK: number = 300;

    /** 技能模块 */
    public abstract Skill: SkillAbstractClass[];

    /** 时间增加 */
    public addTimerLine (){
        this.SLPL += this.SLP / 10;
    }

    /** 获取是否达到行动值 */
    public isTimerStart (){
        return this.SLPL > 100;
    }

    /** 开始回合 */
    public startTime (){
        return new Promise<void>((resolve, reject) => {
            resolve();
        })

    }
}

/**
 * 技能伪类
 */
export abstract class SkillAbstractClass {

}

